package com.weight.system.type.service.impl;

import com.weight.system.type.PO.TypeInfo;
import com.weight.system.type.service.TypeInfoService;
import com.weight.system.type.DAO.TypeInfoMapper;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageHelper;
import org.springframework.transaction.annotation.Transactional;
import com.weight.common.util.CommonUtils;
import lombok.extern.slf4j.Slf4j;

/**
 * 类别常量表
 */
@Service
@Transactional
@Slf4j
public class TypeInfoServiceImpl implements TypeInfoService {

	@Autowired
	private TypeInfoMapper typeInfoMapper;


	/**
	 * 查询类别常量信息--条件查询
	 * @param map
	 * @return
	 */
	@Override
	public List<TypeInfo> findTypeInfoByT(Map map){
		return typeInfoMapper.findTypeInfoByT(map);
	}

	/**
	 * 查询类别常量信息--条件，分页查询
	 * @param currentPage
	 * @param pageSize
	 * @param map
	 * @return
	 */
	@Override
	public List<TypeInfo> findTypeInfoByPage(int currentPage,int pageSize,Map map){
		PageHelper.startPage(currentPage, pageSize);
		List<TypeInfo> typeInfoList = typeInfoMapper.findTypeInfoByT(map);
		return typeInfoList;
	}

	/**
	 * 查询类别常量信息--查询全部
	 * @return
	 */
	@Override
	public List<TypeInfo> findAll(){
		return typeInfoMapper.findAll();
	}

	/**
	 * ID查询类别常量信息
	 * @param map
	 * @return
	 */
	@Override
	public TypeInfo findByTypeInfoId(Map map){
		TypeInfo typeInfo=typeInfoMapper.findByTypeInfoId(map);
		CommonUtils.validateExistObj(typeInfo,map);
		return typeInfo;
	}

	/**
	 * ID查询类别常量信息-批量
	 * @param typeInfoIdList
	 * @return
	 */
	@Override
	public List findByTypeInfoIdList(List typeInfoIdList){
		List idList = typeInfoMapper.findByTypeInfoIdList(typeInfoIdList);
		CommonUtils.validateExistList(idList,typeInfoIdList);
		return idList;
	}

	/**
	 * 添加类别常量
	 * @param typeInfo
	 */
	@Override
	public void insertTypeInfo(TypeInfo typeInfo){
		typeInfoMapper.insertTypeInfo(typeInfo);
	}

	/**
	 * 批量添加类别常量
	 * @param typeInfoList
	 */
	@Override
	public void insertTypeInfoBatch(List<TypeInfo> typeInfoList){
		typeInfoMapper.insertTypeInfoBatch(typeInfoList);
	}

	/**
	 * 修改类别常量
	 * @param typeInfo
	 */
	@Override
	public void updateTypeInfo(TypeInfo typeInfo){
		typeInfoMapper.updateTypeInfo(typeInfo);
	}

	/**
	 * 修改类别常量
	 * @param typeInfo
	 */
	@Override
	public void updateTypeInfoLimt(TypeInfo typeInfo){
		typeInfoMapper.updateTypeInfoLimt(typeInfo);
	}

	/**
	 * 物理删除类别常量
	 * @param map
	 */
	@Override
	public void deleteByTypeInfoId(Map map){
		typeInfoMapper.deleteByTypeInfoId(map);
	}

	/**
	 * 批量物理删除类别常量
	 * @param typeInfoIdList
	 */
	@Override
	public void deleteByTypeInfoIdBatch(List typeInfoIdList){
		typeInfoMapper.deleteByTypeInfoIdBatch(typeInfoIdList);
	}

	/**
	 * 状态删除类别常量
	 * @param map
	 */
	@Override
	public void upDelByTypeInfoId(Map map){
		typeInfoMapper.upDelByTypeInfoId(map);
	}

	/**
	 * 批量状态删除类别常量
	 * @param typeInfoList
	 */
	@Override
	public void upDelByTypeInfoIdBatch(Map<String, Object> map){
		typeInfoMapper.upDelByTypeInfoIdBatch(map);
	}

}